// using UniversalAdminSystem.Application.PermissionManagement.Interfaces;
// using UniversalAdminSystem.Domian.UserManagement.IRepository;
// using UniversalAdminSystem.Domian.PermissionManagement.IRepository;

// namespace UniversalAdminSystem.Application.UserManagement.Service;

// /// <summary>
// /// 用户权限集成服务
// /// 提供用户管理与权限系统的集成功能
// /// </summary>
// public class UserPermissionIntegrationService
// {
//     private readonly IUserRepository _userRepository;
//     private readonly IRoleRepository _roleRepository;
//     private readonly IPermissionCheckService _permissionCheckService;

//     public UserPermissionIntegrationService(
//         IUserRepository userRepository,
//         IRoleRepository roleRepository,
//         IPermissionCheckService permissionCheckService)
//     {
//         _userRepository = userRepository;
//         _roleRepository = roleRepository;
//         _permissionCheckService = permissionCheckService;
//     }

//     /// <summary>
//     /// 验证用户是否有管理其他用户的权限
//     /// </summary>
//     public async Task<bool> CanManageUserAsync(Guid currentUserId, Guid targetUserId)
//     {
//         // 超级管理员可以管理所有用户
//         if (await IsSuperAdminAsync(currentUserId))
//         {
//             return true;
//         }

//         // 普通管理员只能管理普通用户
//         if (await IsAdminAsync(currentUserId))
//         {
//             var targetUser = await _userRepository.GetByGuidAsync(targetUserId);
//             return targetUser != null && !await IsAdminAsync(targetUserId);
//         }

//         return false;
//     }

//     /// <summary>
//     /// 验证用户是否有删除其他用户的权限
//     /// </summary>
//     public async Task<bool> CanDeleteUserAsync(Guid currentUserId, Guid targetUserId)
//     {
//         // 不能删除自己
//         if (currentUserId == targetUserId)
//         {
//             return false;
//         }

//         // 超级管理员可以删除任何用户
//         if (await IsSuperAdminAsync(currentUserId))
//         {
//             return true;
//         }

//         // 普通管理员只能删除普通用户
//         if (await IsAdminAsync(currentUserId))
//         {
//             var targetUser = await _userRepository.GetByGuidAsync(targetUserId);
//             return targetUser != null && !await IsAdminAsync(targetUserId);
//         }

//         return false;
//     }

//     /// <summary>
//     /// 验证用户是否有分配角色的权限
//     /// </summary>
//     public async Task<bool> CanAssignRolesAsync(Guid currentUserId, Guid targetUserId, List<Guid> roleIds)
//     {
//         // 超级管理员可以分配任何角色
//         if (await IsSuperAdminAsync(currentUserId))
//         {
//             return true;
//         }

//         // 普通管理员只能分配普通角色
//         if (await IsAdminAsync(currentUserId))
//         {
//             var roles = await _roleRepository.GetByIdsAsync(roleIds);
//             return roles.All(r => !r.Name.Value.Contains("Admin") && !r.Name.Value.Contains("Super"));
//         }

//         return false;
//     }

//     /// <summary>
//     /// 检查是否为超级管理员
//     /// </summary>
//     private async Task<bool> IsSuperAdminAsync(Guid userId)
//     {
//         var permissions = await _permissionCheckService.GetUserPermissionsAsync(userId);
//         return permissions.Any(p => p.Contains("super") || p.Contains("system"));
//     }

//     /// <summary>
//     /// 检查是否为管理员
//     /// </summary>
//     private async Task<bool> IsAdminAsync(Guid userId)
//     {
//         var roles = await _permissionCheckService.GetUserRolesAsync(userId);
//         return roles.Any(r => r.Contains("Admin") || r.Contains("Manager"));
//     }

//     /// <summary>
//     /// 获取用户的权限级别
//     /// </summary>
//     public async Task<UserPermissionLevel> GetUserPermissionLevelAsync(Guid userId)
//     {
//         if (await IsSuperAdminAsync(userId))
//         {
//             return UserPermissionLevel.SuperAdmin;
//         }
//         else if (await IsAdminAsync(userId))
//         {
//             return UserPermissionLevel.Admin;
//         }
//         else
//         {
//             return UserPermissionLevel.User;
//         }
//     }
// }

// /// <summary>
// /// 用户权限级别枚举
// /// </summary>
// public enum UserPermissionLevel
// {
//     User,       // 普通用户
//     Admin,      // 管理员
//     SuperAdmin  // 超级管理员
// } 